package com.example.thegreatwall.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.thegreatwall.common.R;
import com.example.thegreatwall.common.api.CommonResult;
import com.example.thegreatwall.entity.ProductType;
import com.example.thegreatwall.service.ProductTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Arrays;
import java.util.List;

/**
 * 商品类型控制器
 * 处理商品分类相关的功能，用于展示商品分类列表和分类详情
 * 包括类型名称、图标等信息的查询
 */
@RestController
@RequestMapping("/product-type")
@CrossOrigin(origins = "*")
public class ProductTypeController {

    @Autowired
    private ProductTypeService productTypeService;

    /**
     *  查询导航栏
     */
    @GetMapping(value = "nav")
    public R nav(){
        QueryWrapper<ProductType> queryWrapper = new QueryWrapper();
        queryWrapper.in("product_type_id", Arrays.asList(1,2,3,5));
        return new R().addDate("nav", productTypeService.list(queryWrapper));
    }
    /**
     * 获取所有商品类型
     * 返回系统中所有可用的商品分类信息
     * 用于展示商品分类导航、筛选等功能
     *
     * @return 返回所有商品类型的列表
     */
    @GetMapping("/list")
    public CommonResult<List<ProductType>> getAllTypes() {
        QueryWrapper<ProductType> queryWrapper = new QueryWrapper();
        queryWrapper.eq("status", 0);
        List<ProductType> types = productTypeService.list(queryWrapper);
        return CommonResult.success(types);
    }

    /**
     * 获取单个商品类型详情
     * 根据类型ID获取特定分类的详细信息
     *
     * @param productTypeId 商品类型ID
     * @return 返回指定商品类型的详细信息
     */
    @GetMapping("/{productTypeId}")
    public CommonResult<ProductType> getType(@PathVariable Integer productTypeId) {
        ProductType type = productTypeService.getById(productTypeId);
        return CommonResult.success(type);
    }


}